package com.ccc.boot.base;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ccc.boot.pojo.Query;

import java.util.Map;

/**
 * 通用业务接口
 */
public interface IBaseService<T extends BaseDO> extends IService<T> {
    /**
     * 新增
     *
     * @param entity 实体对象
     * @return {@code boolean}
     */
    boolean insert(T entity);

    /**
     * 删除
     *
     * @param id {@code Long} ID
     * @return {@code boolean}
     */
    boolean delete(Long id);

    /**
     * 修改
     *
     * @param entity 实体对象
     * @return {@code boolean}
     */
    boolean update(T entity);

    /**
     * 获取
     *
     * @param id {@code Long} ID
     * @return 实体对象
     */
    T get(Long id);

    /**
     * 分页
     *
     * @param query  查询请求参数对象
     * @return 管理员分页数据
     */
    IPage<?> page(Query query);
}